home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 November / CHIP Kasım 1998.iso / emulators / atari2600 / st10b1dos.exe / stella / Stella.txt < prev    next >
Text File  |  1998-08-01  |  21KB  |  623 lines

  1. ===============================================================================
  2.  
  3.                       SSSS    tt          lll  lll
  4.                      SS  SS   tt           ll   ll
  5.                      SS     tttttt  eeee   ll   ll   aaaa
  6.                       SSSS    tt   ee  ee  ll   ll      aa
  7.                          SS   tt   eeeeee  ll   ll   aaaaa
  8.                      SS  SS   tt   ee      ll   ll  aa  aa
  9.                       SSSS     ttt  eeeee llll llll  aaaaa
  10.  
  11. ===============================================================================
  12.                           User Guide for Version 1.0b1
  13. ===============================================================================
  14.  
  15. This guide explains how to install and use Stella to play Atari 2600 VCS
  16. games on your computer.  Please read this guide throughly before sending 
  17. questions to anyone.  If you don't find the answers to your questions in 
  18. this guide please see the FAQ found on the Stella homepage.  If you have
  19. any suggestions for improvements to this document or to Stella please 
  20. send them to bwmott@acm.org.
  21.  
  22. DO NOT SEND EMAIL ASKING FOR ROMS BECAUSE THEY ARE COPYRIGHTED.  DO NOT
  23. SEND EMAIL ASKING FOR THE LOCATION OF ROMS ON THE INTERNET.  ANY MAIL 
  24. RECEIVED OF THIS NATURE WILL BE DELETED AND NO RESPONSE GIVEN!
  25.  
  26.  
  27. TiaSound Library Copyright Notice
  28. ==================================
  29.  
  30. (Stella uses the TiaSound library written by Ron Fries.  It can be be 
  31. downloaded from the Stella home page.)
  32.  
  33. TiaSound is Copyright(c) 1996, 1997, 1998 by Ron Fries
  34.  
  35. This library is free software; you can redistribute it and/or modify it under 
  36. the terms of version 2 of the GNU Library General Public License as published 
  37. by the Free Software Foundation.
  38.  
  39. This library is distributed in the hope that it will be useful, but WITHOUT 
  40. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
  41. FOR A PARTICULAR PURPOSE.  See the GNU Library General Public License for more 
  42. details.
  43.  
  44. To obtain a copy of the GNU Library General Public License, write to the Free 
  45. Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  46.  
  47. Any permitted reproduction of these routines, in whole or in part, must bear 
  48. this legend.  
  49.  
  50.  
  51. Table of Contents
  52. =================
  53.  
  54.   1.0 Introduction
  55.  
  56.   2.0 Installation
  57.  
  58.     2.1 DOS Binary Distribution
  59.  
  60.     2.2 Unix and DOS Source Code Distribution
  61.  
  62.   3.0 ROM Images
  63.  
  64.     3.1 General
  65.     3.2 Supercharger
  66.   
  67.   4.0 Playing Games
  68.  
  69.     4.1 DOS
  70.  
  71.     4.2 Unix
  72.  
  73.   5.0 Keyboard Layout
  74.  
  75.   6.0 Mailing List
  76.  
  77.   7.0 Known problems with Cartridges
  78.  
  79.   8.0 Adding Properties
  80.  
  81.   9.0 Property Autodetection
  82.  
  83.  10.0 Acknowledgements
  84.  
  85.  11.0 Revision History
  86.  
  87.  
  88. 1.0 Introduction
  89. ================
  90.  
  91. Stella is a portable emulator of the old Atari 2600 video-game console
  92. written in C++.  You can play most Atari 2600 games with it.  The latest 
  93. news, code and binaries for Stella can be found at:
  94.  
  95.   http://www.classicgaming.com/stella/
  96.  
  97. If you are having problems with Stella please visit the home page and
  98. make sure you're running the lastest release before sending mail.  There
  99. are versions of Stella for Linux, DOS, OS/2, Power Macs, Unix/X, and 
  100. Windows.  The maintainers are:
  101.  
  102.   Aaron Giles (agiles@sirius.com)           Power Macs
  103.   Jeff Miller (milnak@msn.com)              Windows 95 & NT
  104.   Bradford W. Mott (bwmott@acm.org)         Linux, Unix/X and DOS
  105.   Darrell Spice Jr. (spice@ibm.net)         OS/2
  106.  
  107. If you would like to port Stella to another platform or would like to
  108. help with something please take a look at the Todo.txt file for a list
  109. of things that need to be done.   Please note that although the source 
  110. code for Stella is freely distributed the code is NOT public domain.
  111.  
  112.  
  113. 2.0 Installation
  114. ================
  115.  
  116. Once you've downloaded a Stella distribution you should follow the 
  117. directions for the distribution you have.  
  118.  
  119. 2.1 DOS Binary Distribution
  120. ---------------------------
  121.  
  122. This distribution contains the binaries for DOS.  To install the
  123. distribution do the following:
  124.  
  125.   1) Change directories to the root directory: CD \
  126.  
  127.   2) Unzip the distribution: st10b1.zip
  128.   
  129.   3) Copy the stella.exe program to a directory in your path or
  130.      add C:\STELLA to your path in the AUTOEXEC.BAT file
  131.  
  132. The DOS version of Stella supports sound using a Sound Blaster card.  For 
  133. it to work correctly you MUST set the BLASTER environment variable in your 
  134. AUTOEXEC.BAT file.  Sound cards with an IRQ setting greater than 7 should 
  135. be working now.
  136.  
  137. If you have problems with the joysticks you may have to unplug them to 
  138. use Stella.
  139.  
  140. You may find it easier to run Stella using an emulator front end than 
  141. using the command line.  An emulator front end allows you to pick games 
  142. without having to type everything at the command line.  One such front 
  143. end is Jim Pragit's "Game Menu" which can be found at the following URL: 
  144.  
  145.   http://members.aol.com/jpsoftco/gamemenu.htm.
  146.  
  147. There are other emulator front ends available as well, however, you'll
  148. have to search for them.
  149.  
  150. 2.2 Unix and DOS Source Code Distribution
  151. -----------------------------------------
  152.  
  153. This distribution contains the source code for Stella.  The source code
  154. can be compiled under most Unix operating systems and DOS.  The Unix
  155. code was developed with GCC 2.8.1, however, it should compile with other 
  156. C++ compilers.  The DOS port was developed with DJGPP using version 2.8.1 
  157. of GCC, however, it may compile with others.
  158.  
  159.   1) Change directories to the .../stella-1.0b1/src/build directory
  160.  
  161.   2) Edit the makefile to meet your needs
  162.  
  163.   3) Type 'make' and follow the on screen instructions to build Stella
  164.  
  165.   4) Install Stella in a directory that's in your path
  166.  
  167.   5) Change directories to the .../stella-1.0b1/src/ui/sound directory
  168.  
  169.   6) Type 'make' and follow the on screen instructions to build stella-sound
  170.  
  171.   7) Install stella-sound in a directory that's in your path
  172.  
  173. At this time sound is support using the Open Sound System for Unix.  The
  174. sound has been tested under Linux and BSDI.  If you have some free time 
  175. please try to port the stella-sound program to your favorite Unix.
  176.  
  177.  
  178. 3.0 ROM Images
  179. ==============
  180.  
  181. In order to play an Atari 2600 game you have to have a ROM image of the 
  182. game.  A ROM image is a file that contains the data off the game cartridge 
  183. or cassette.
  184.  
  185. 3.1 General
  186. -----------
  187.  
  188. Most games for the Atari 2600, like many game systems, were stored on 
  189. cartridges.  These cartridges usually contained a single ROM chip (Read 
  190. Only Memory) which had the program for the game stored on it.  When you 
  191. plugged the cartridge into the 2600 it allowed the 2600's microprocessor, 
  192. a 6507 which is very similar to a 6502, to execute the program stored
  193. on the cartridge.
  194.  
  195. Just like a cartridge had to be plugged into the 2600 you also have to
  196. supply Stella with a copy of the cartridge you want to play.  This is done
  197. by having a ROM image (.BIN file) of the cartridge.  ROM images are files 
  198. which contain the actual data off the cartridge (basically it contains 
  199. 6507 machine code).  There are several ways to get a ROM image:
  200.  
  201.   1) It's possible to build a device that plugs into the printer port
  202.      of a PC and reads the data off the cartridge
  203.  
  204.   2) Purchase any of the Activision Atari 2600 Action Packs and use the
  205.      ROM images (.BIN files) from it
  206.  
  207.   3) Search around the net and find some ROM images (.BIN files) to download
  208.  
  209.   WARNING: It is illegal to have ROM images of games that you do not
  210.            actually own (i.e. you don't own the cartridge and you 
  211.            didn't buy it from Activision)
  212.  
  213. In addition to the ROM image you may need to supply some properties for 
  214. the game.  These properties inform Stella of the "best" settings for a 
  215. game.  When Stella doesn't have properties for a game it tries to guess 
  216. the settings and uses defaults for settings it can't guess.  For most 
  217. games you will NOT need to add properties to Stella since it contains 
  218. setting for a lot of games and can guess the settings for most of the 
  219. others, however, for best results you may decide you want to specify the 
  220. properties yourself.  If you do you should read the "Adding Properties" 
  221. section of this guide.
  222.  
  223. 3.1 Supercharger
  224. ----------------
  225.  
  226. Supercharger games were not stored on cartridges instead they were
  227. stored on cassette tapes. The Supercharger, which plugged into the 
  228. Atari 2600's cartridge slot, loaded games into it's 6K of RAM using 
  229. a tape player.  The Supercharger also supported multiloading which 
  230. allowed games to be broken into several 6K pieces and loaded at 
  231. different times.  This was useful for long games that had distinct 
  232. parts (i.e. role playing type games). 
  233.  
  234. Most Supercharger ROM images are stored as an 8448 byte file.  However, 
  235. ROM images of multiload games are stored as a set of 8448 byte files.  
  236. The names of these files have a two character sequence number in them 
  237. which indicate what load they are (the sequence always starts at zero 
  238. but then skips a few numbers and then increments by one).
  239.  
  240. Stella supports multiload games, however, the set of ROM image files
  241. has to be combined into a single large ROM image file.  To create
  242. a multiload ROM image file for Stella under Unix do the following:
  243.  
  244.   % cat survivl0.bin survivl6.bin survivl7.bin > survivl.bin
  245.  
  246. Then you can play the game with Stella using the survivl.bin file. 
  247. Stella has properties builtin for most of the Supercharger games, 
  248. however, if you're developing your own Supercharger game you might
  249. need to add some properties to Stella. See the "Adding Properties" 
  250. section of this guide for more information.
  251.  
  252. It is VERY important that the "Emulation.CPU" property be set to "High" 
  253. for Supercharger games.  If it isn't the game will not run correctly.  
  254. Stella automatically sets this property if it sees a ROM image who's 
  255. size is a multiple of 8448.
  256.  
  257.  
  258. 4.0 Playing Games
  259. =================
  260.  
  261. Once you've installed Stella and have some ROM images you can play 
  262. a game by following the directions for your operating system.
  263.  
  264. 4.1 DOS
  265. -------
  266.  
  267. The DOS version of Stella expects you to pass the name of the ROM image 
  268. as a command line argument.  For example:
  269.  
  270.   stella FILENAME.BIN 
  271.  
  272. This version also supports two command line options -fps and -paddle.
  273. The -fps option can be used to set the number of frames to generate per 
  274. second (defaults to 60).  The -paddle option can be used to specify which 
  275. paddle (0, 1, 2, or 3) the mouse should be connected to (defaults to 0).
  276.  
  277. 4.2 Unix
  278. --------
  279.  
  280. The Unix version of Stella expects you to pass the name of the ROM image 
  281. as a command line argument.  For example:
  282.  
  283.   xstella FILENAME.BIN 
  284.  
  285. This version also supports two command line options -fps and -paddle.
  286. The -fps option can be used to set the number of frames to generate per 
  287. second (defaults to 60).  The -paddle option can be used to specify which 
  288. paddle (0, 1, 2, or 3) the mouse should be connected to (defaults to 0).
  289.  
  290.  
  291. 5.0 Keyboard Layout
  292. ===================
  293.  
  294. The following keys are used:
  295.  
  296.   Escape          Quit
  297.   =               Change window size (X windows)
  298.  
  299.   F1              Select Game
  300.   F2              Game Reset
  301.   F3              Color television
  302.   F4              Black and White television
  303.  
  304.   F5              Left player difficulty B
  305.   F6              Left player difficulty A
  306.   F7              Right player difficulty B
  307.   F8              Right player difficulty A
  308.  
  309. Here are the keys to use for the various controllers:
  310.  
  311.                Left              Left (Alt)            Right
  312.                ----              ----------            -----
  313.   Joystick     w/a/s/d/tab       up/dn/lt/rt/spc       o/k/l/;/j
  314.  
  315.   BoosterGrip  w/a/s/d/tab/1/2   up/dn/lt/rt/spc/z/x   o/k/l/;/j/n/m
  316.  
  317.   Keypad       1 2 3                                   8 9 0
  318.                q w e                                   i o p
  319.                a s d                                   k l ;
  320.                z x c                                   , . /
  321.  
  322.   Driver       a/d/tab           lt/rt/spc             k/;/j
  323.  
  324.  
  325. 6.0 Mailing List
  326. ================
  327.  
  328. There is a mailing list for Stella.  The mailing list is for discussions
  329. concerning Stella including bug reports, enhancements reports, and general 
  330. usage tips.  Anyone who uses Stella regularly should subscribe to the 
  331. mailing list.
  332.  
  333. To subscribe to the list send the following message to majordomo@csc.ncsu.edu:
  334.  
  335.   subscribe stella
  336.   end
  337.  
  338. Once you've subscribed you can send messages to everyone on the 
  339. list by mailing them to stella@csc.ncsu.edu.  Anything you mail to 
  340. stella@csc.ncsu.edu goes to everyone on the mailing list.  
  341.  
  342. Make sure you really mean to send your message to stella@csc.ncsu.edu and
  343. NOT majordomo@csc.ncsu.edu (i.e. if it's a mailing list server command it
  344. should be sent to majordomo@csc.ncsu.edu not stella@csc.ncsu.edu).
  345.  
  346. For more information on using the majordomo mailing list server send the
  347. following message to majordomo@csc.ncsu.edu:
  348.  
  349.   help
  350.   end
  351.  
  352.  
  353. 7.0 Known problems with Cartridges
  354. ==================================
  355.  
  356. This section contains information about problems I know about with 
  357. some cartridges:
  358.  
  359.   * Defender II     - This cartridge is really an F8SC cartridge, 8K with
  360.                       128 bytes of RAM, not an F6SC cartridge.  There is
  361.                       a 16K image of this cartridge floating around that
  362.                       has the right code in it, however, it's the second
  363.                       8K that's needed.  If you're running Unix you can 
  364.                       fix it with the command: 
  365.  
  366.                         tail --bytes=8192 DEFENDR2.BIN > tmp
  367.                         mv tmp DEFENDR2.BIN
  368.  
  369.                       If you're running DOS you can fix it by
  370.                       typing what's in <>s below:
  371.  
  372.                         <DEBUG DEFENDR2.BIN>
  373.                         -<RCX>
  374.                         CX 4000
  375.                         : <2000>
  376.                         -<W2100>
  377.                         Writing 02000 bytes
  378.                         -<Q>
  379.  
  380.                       (provided by plord@mail.pacificnet.net)
  381.   
  382.   * Stargate        - Same as Defender II above
  383.  
  384.  
  385. 8.0 Adding Properties
  386. =====================
  387.  
  388. Properties inform Stella of the "best" settings for a game.  Stella has 
  389. a set of builtin properties that supply default settings for all games 
  390. as well as specific settings for many games.  New properties can be added 
  391. to Stella by creating a '.stella.pro' file in your home directory.
  392.  
  393. More information to come...
  394.  
  395.  
  396. 9.0 Property Autodetection
  397. ==========================
  398.  
  399. When Stella loads a ROM image it does the following:
  400.  
  401.   1) Uses the following default values:
  402.  
  403.      Display.Format    = NTSC
  404.      Display.YStart    = 38
  405.      Display.Height    = 210
  406.      Display.XStart    = 0
  407.      Display.Width     = 160
  408.  
  409.      Console.LeftDifficulty  = B 
  410.      Console.RightDifficulty = B
  411.      Console.TelevisionType  = Color
  412.  
  413.      Controller.Left = Joystick
  414.      Controller.Right = Joystick
  415.  
  416.      Emulation.CPU         = Auto-detect
  417.      Emulation.HmoveBlanks = Yes
  418.      
  419.   2) Determines Cartridge.Type as follows:
  420.  
  421.      a) If the name of the file matches any of the known 8K Parker Brother
  422.         games then set the type to E0
  423.  
  424.      b) Use the "real" size of the ROM image to set the type to either
  425.         2K, 4K, AR, F8, F6 or F6SC
  426.  
  427.         NOTE: The type is set to F6SC if the size is 16K and the first
  428.               256 bytes are all the same value
  429.  
  430.   3) Computes the Cartridge.MD5 from the ROM image data
  431.  
  432. You can see that the guessing isn't all that smart and we can hopefully 
  433. make it better in later releases.  You should also noticed that it doesn't
  434. guess if the cartridge uses joysticks or paddles (it assumes joysticks).
  435.  
  436.  
  437. 10.0 Acknowledgements
  438. =====================
  439.  
  440. The following people have had a part in bringing Stella to you:
  441.  
  442.   Piero Cavina      - Allowed "Oystron" to be included in the Stella
  443.                       distribution (p.cavina@mo.nettuno.it)
  444.  
  445.   Bob Colbert       - Allowed "Okie Dokie" to be included in the Stella
  446.                       distribution (rcolbert@novia.net)
  447.  
  448.   Ron Fries         - Author of the TiaSound library
  449.  
  450.   Aaron Giles       - Maintained the Power Mac version
  451.  
  452.   Mark R. Hahn      - Allowed "Elk Attack" to be included in the Stella
  453.                       distribution and described the TIA HMOVE blanks
  454.  
  455.   Kevin Horton      - Author of the 2600 bankswitching method paper
  456.  
  457.   Erik Kovach       - Maintained the stella game setting files
  458.  
  459.   Daniel Marks      - Provided code to improve the keyboard joystick support
  460.  
  461.   Jeff Miller       - Maintained the Windows version
  462.  
  463.   Bradford Mott     - Maintained the core code, Linux SVGA version and X version
  464.  
  465.   Jim Pragit        - Creator of "Game Menu" 
  466.  
  467.   Chris Salomon     - Provided information and code to implement Supercharger 
  468.                       support
  469.  
  470.   Jason Scott       - Organizer of the property file archive 
  471.                       (needed for versions before 0.7)
  472.  
  473.   Raul Silva        - Helped with the the design and graphics on the home page 
  474.  
  475.   Chris Snell       - Maintained a mirror of the Stella FTP site
  476.  
  477.   Darrell Spice Jr. - Maintained the OS/2 version
  478.  
  479.   Eckhard Stolberg  - Described TIA bug that produces stars in Cosmic Ark
  480.  
  481.   Greg Troutman     - Allowed "This Planet Sucks" to be included in the 
  482.                       Stella distribution (mor@crl.com)
  483.  
  484.   Keith Wilkins     - Maintained the DOS version until version 0.7
  485.  
  486.   Jeff Wisnia       - Provided technical data sheet for the 6532
  487.  
  488. Thanks to all the 2600 fans who've kept encouraging us to continue.
  489.  
  490.  
  491. 11.0 Revision History
  492. =====================
  493.  
  494. The following is a list of changes to Stella:
  495.  
  496.   0.7 to 1.0b1: (July 25, 1998)
  497.  
  498.     * Supports the following controllers:
  499.  
  500.         Joysticks, Paddles, Booster-Grip, Keyboard and Driving
  501.  
  502.     * Supports the following bank switching methods:
  503.  
  504.         2K, 3F, 4K, AR, E0, E7, F0, F4SC, F6, F8, F8SC, FASC, FE
  505.  
  506.     * Properties are associated with games using their MD5 checksum
  507.       calculated on the entire ROM image
  508.  
  509.     * Uses the new 'stella.pro' file format for game properties
  510.  
  511.     * Includes Erik's latest stella.pro properties file
  512.  
  513.     * New frame rate throttle code for X windows GUI
  514.  
  515.     * Based on the new and improved M6502 CPU emulation
  516.  
  517.     * Improvements to TIA emulation
  518.  
  519.       - Support HMOVE blanks
  520.  
  521.       - Improved Cosmic Ark star field effect
  522.  
  523.       - Some support for the RESPx multiple sprite trick
  524.  
  525.       - Support NTSC and PAL palettes
  526.  
  527.     * Improvements to PIA emulation (timing)
  528.  
  529.     * Improved Supercharger emulation
  530.  
  531.   0.6 to 0.7: (June 7, 1997)
  532.  
  533.     * Improved emulation speed of TIA and 6507
  534.  
  535.     * Added Starpath Supercharger support
  536.  
  537.     * Added Tigervision bankswitching support (3F bankswitching)
  538.  
  539.     * Added pause game feature for Unix and DOS
  540.  
  541.     * VCS files combined into a single builtin property file
  542.  
  543.     * Added TIA HMOVE "feature" to support Cosmic Ark stars
  544.  
  545.     * Improved TIA VSYNC code so that it works more like the real 
  546.       thing (0.6 VSYNC code caused the graphics of some games to 
  547.       be off such as Alien and Battle Zone)
  548.       
  549.     * Added two 6507 emulators: one is designed to act more like 
  550.       the real thing, while the other is designed to be as fast as 
  551.       possible (required for Supercharger support)
  552.  
  553.     * Changed TIA peeking so lower nibble of byte read is the same 
  554.       as the TIA address being accessed (Warlords now works)
  555.  
  556.   0.5 to 0.6: (January 18, 1997)
  557.  
  558.     * Fixed collision detection problem (Freeway works)
  559.  
  560.     * Changed PIA timing code to fix screen jitters
  561.  
  562.     * Added new bank switching methods: F4SC (Fatal Run), E7 (Burgertime)
  563.  
  564.     * Fixed some code in the TIA emulation that caused SEGFAULTS
  565.  
  566.     * Improved frame rate throttling code to work better on fast machines
  567.  
  568.     * Improved TIA emulation (missle graphics are fully emulated now)
  569.  
  570.     * Included Bob Colbert's "Okie Dokie" game
  571.  
  572.     * Uses version 1.1 of the TIA Sound library by Ron Fries
  573.  
  574.   0.4 to 0.5: (November 17, 1996)
  575.  
  576.     * Added sound support
  577.  
  578.     * Added new bank switching methods: F8SC (Defender II), FASC (CBS RAM+)
  579.  
  580.     * Changed TIA so peeking $E and $F return $F not $0 for Haunted House
  581.  
  582.     * Changed PIA timing code to fix screen jitters in Frogger
  583.  
  584.     * Addressing scheme rewritten
  585.  
  586.     * Optimized 6507 memory accesses
  587.  
  588.     * Randomized memory in PIA upon startup
  589.  
  590.     * Removed auto-disabling of objects at the start of a frame 
  591.       so you can't walk through walls in Adventure
  592.  
  593.     * Changed the X windows terminal update method to make it faster and
  594.       easier to understand
  595.  
  596.   0.3 to 0.4 (August 28, 1996):
  597.  
  598.     * TIA code has been optimized some
  599.  
  600.     * Some games can be played with just a ROM image
  601.  
  602.     * New search method for ROM images (no more STELLA_PATH)
  603.  
  604.     * Delta screen update supported
  605.  
  606.     * Better error handling added to the "core"
  607.  
  608.   0.2 to 0.3 (July 12, 1996):
  609.   
  610.     * Keyboard joystick support is much better (Daniel Marks)
  611.  
  612.     * Paddles are now supported via the mouse (Bradford Mott)
  613.  
  614.     * Many portability issues have been resolved (Keith Wilkins)
  615.  
  616.     * Fixed a problem with the 6507 ADC and SBC instructions that caused
  617.       some games (Enduro) not to work correctly (Bradford Mott)
  618.  
  619.     * Power Macintosh port (Aaron Giles)
  620.  
  621.     * Windows 95 & NT port (Jeff Miller)
  622.  
  623.